/*编程实现:创造一个链式线性表，往其中插入一组整型元素 (有正有负)，再实现删除该线
性表中的所有小于0的元素。结果能输出插入元素的结果，和删除后的结果。
 编程实现:创造一个链式线性表，往其中插入一组整型元素 (有正有负)，
 再实现删除该线性表中的所有小于0的元素。
 结果能输出插入元素的结果，和删除后的结果。
*/
#include <stdio.h>
#include <stdlib.h>
struct node{
    int data;
    struct node *next;
};
typedef struct node pnode;
pnode* crate()//创建链表
{
    pnode *L=(pnode*)malloc(sizeof(pnode));
    L->next=NULL;
    return L;
}
void cin(pnode* p,int a)//输入数字
{
    pnode *L=(pnode*)malloc(sizeof(pnode));
    L->data=a;
    while(p->next!=NULL)
        p=p->next;
    p->next=L;
    L->next=NULL;
}
void cout(pnode *p)
{

    do{
        p=p->next;
        printf("%d ",p->data);
    }while (p->next!=NULL);
}
void del(pnode *p)
{
    pnode *l;
    l=p;
    while (p->next!=NULL)
    {
        if (p->data<0)
           l->next=p->next;
        l=p;
        p=p->next;
    }
}
int main()
{
    int n,i;
    pnode* head=crate();
    scanf("%d",&n);
    for (int j = 0; j < n; ++j) {
        scanf("%d",&i);
        cin(head,i);
    }
    cout(head);
    del(head);
    cout(head);
}